package respdata

import (
	"time"
)

type AuthResp struct {
	Auth struct {
		Id       int64  `json:"id,omitempty"`
		Account  string `json:"account,omitempty"`
		Nickname string `json:"nickname,omitempty"`
		Avatar   string `json:"avatar,omitempty"`
		Status   int    `json:"status"`
		SaasId   int64  `json:"saas_id,omitempty"`   // saas模式下用到的归属租户id
		SaasName string `json:"saas_name,omitempty"` // saas模式下用到的归属租户的名称

		Extends map[string]string `json:"extends,omitempty"` //额外信息
	} `json:"auth"` //授权信息
	ExpiredAt int64  `json:"expired_at"`      //过期时间戳，秒级
	Token     string `json:"token,omitempty"` //授权凭证
}

// RegisterResp 注册resp
type RegisterResp struct {
	Account  string `json:"account" gorm:"type:varchar(64);uniqueIndex"`
	Nickname string `json:"nickname" gorm:"type:varchar(64)"`
	Sex      int    `json:"sex"`
	Avatar   string `json:"avatar" gorm:"type:varchar(256)"`
	Email    string `json:"email" gorm:"type:varchar(128)"`
	Phone    string `json:"phone" gorm:"type:varchar(32)"`
}

// QueryUserResp 查询用户返回结果
type QueryUserResp struct {
	Id int64 `json:"id,omitempty"`

	Account  string `json:"account"`
	Nickname string `json:"nickname"` //昵称
	Sex      int    `json:"sex"`      //性别，0：未知，1：男，2：女
	Avatar   string `json:"avatar"`   //头像
	Email    string `json:"email"`    //email
	Phone    string `json:"phone"`    //手机号

	LastLogin *time.Time `json:"last_login,omitempty"` //上次登录时间
	LastIp    string     `json:"last_ip,omitempty"`    //上次登录ip

	Status    int        `json:"status,omitempty"`
	CreatedAt *time.Time `json:"created_at,omitempty"`
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	Thirds []*UserThirdInfo `json:"third_binds"` //第三方绑定列表
}

type UserThirdInfo struct {
	Id int64 `json:"id"  gorm:"primaryKey"`

	ThirdId      string `json:"third_id" gorm:"type:varchar(64);uniqueIndex"`       //第三方id
	ThirdUnionId string `json:"third_union_id" gorm:"type:varchar(64);uniqueIndex"` //第三方union id
	ThirdType    string `json:"third_type" gorm:"type:varchar(16)"`                 //第三方类型
	UId          int64  `json:"uid" gorm:"index"`

	Nickname   string `json:"nickname" gorm:"type:varchar(64)"`
	Avatar     string `json:"avatar" gorm:"type:varchar(256)"`
	ExtendInfo string `json:"extend_info,omitempty" gorm:"type:varchar(512)"` //拓展信息，可以存json

	//额外可获取的用户信息
	Phone string `json:"phone" gorm:"-"`
	Email string `json:"email" gorm:"-"`
}
